Skip to content

19.4 本章小结

🎯 核心要点回顾

通过本章的学习,我们深入了解了 DeepAnalyze —— 一个完全自研的数据科学 Agent 系统。

关键发现

DeepAnalyze 的独特定位

├── 完全自研 Agent 框架
│   ├── 没有使用 LangChain/LangGraph/AutoGen
│   ├── 基于简单的迭代循环实现
│   └── 自定义 XML 标签协议

├── 端到端训练的专用模型
│   ├── 课程式训练范式
│   ├── SFT + RL 结合
│   └── 50万条训练数据

└── 专注数据科学领域
    ├── 只有"代码执行"一种工具
    ├── 但这个工具足够强大
    └── 生成分析师级别的报告

📊 DeepAnalyze vs LangGraph 对比总结

设计哲学

维度DeepAnalyzeLangGraph
核心理念训练 > 工程工程 > 训练
Agent 实现命令式循环声明式图
工具支持单一(代码执行)任意多种
LLM 选择专用模型任意 LLM
可扩展性需重新训练运行时可扩展

技术实现

维度DeepAnalyzeLangGraph
循环控制for round in range(30)条件边 + State
状态管理消息列表TypedDict
工具调用<Code> 标签tool_calls
终止条件<Answer> 标签路由到 END
错误处理try-exceptRetryPolicy
人工介入不支持interrupt()

适用场景

场景DeepAnalyzeLangGraph
数据科学分析⭐⭐⭐⭐⭐⭐⭐⭐
快速原型⭐⭐⭐⭐⭐⭐⭐
多工具集成⭐⭐⭐⭐⭐⭐⭐
本地部署⭐⭐⭐⭐⭐⭐⭐⭐
多 Agent 协作⭐⭐⭐⭐⭐⭐⭐
人工介入⭐⭐⭐⭐⭐

🧠 深层洞察

为什么 DeepAnalyze 选择自研?

1. 专业领域深度优化
   └── 数据科学任务有明确的模式
       └── 可以通过训练直接学习
           └── 而非依赖复杂的工程编排

2. 端到端控制
   └── 从训练到推理全链路可控
       └── 无第三方黑盒
           └── 更容易优化和调试

3. 效率优先
   └── 简单循环比图结构更高效
       └── 减少框架开销
           └── 更低的推理延迟

LangGraph 的优势在哪里?

1. 通用性
   └── 支持任意 LLM 后端
       └── 支持任意工具集
           └── 一套框架解决多种问题

2. 灵活性
   └── 运行时可修改行为
       └── 无需重新训练
           └── 快速迭代

3. 可观测性
   └── 内置 Trace 和 Debug
       └── 状态可视化
           └── 更易于调试

何时选择哪种方案?

选择 DeepAnalyze 当:
├── 专注于数据科学任务
├── 需要本地部署
├── 有 GPU 资源
├── 需要批量处理类似任务
└── 对延迟敏感

选择 LangGraph 当:
├── 需要快速原型
├── 需要多种工具集成
├── 需要多 Agent 协作
├── 需要人工介入
├── 需要灵活的 LLM 切换
└── 没有 GPU 资源

📚 知识图谱

                    ┌─────────────────────────┐
                    │     Agent 系统设计       │
                    └───────────┬─────────────┘

            ┌───────────────────┼───────────────────┐
            │                   │                   │
            ▼                   ▼                   ▼
    ┌───────────────┐   ┌───────────────┐   ┌───────────────┐
    │  框架依赖型    │   │   自研型      │   │  混合型       │
    └───────┬───────┘   └───────┬───────┘   └───────┬───────┘
            │                   │                   │
            ▼                   ▼                   ▼
    ┌───────────────┐   ┌───────────────┐   ┌───────────────┐
    │  LangGraph    │   │ DeepAnalyze   │   │  TradingAgent │
    │  AutoGen      │   │ 其他自研项目  │   │  其他混合项目 │
    └───────────────┘   └───────────────┘   └───────────────┘
            │                   │                   │
            │                   │                   │
            ▼                   ▼                   ▼
    ┌───────────────┐   ┌───────────────┐   ┌───────────────┐
    │ 通用、灵活    │   │ 专业、高效    │   │ 结合两者优势  │
    │ 快速开发      │   │ 深度优化      │   │ 权衡取舍      │
    └───────────────┘   └───────────────┘   └───────────────┘

✅ 学习目标检查

完成本章后,检查你是否达到了学习目标:

  • [x] 理解 DeepAnalyze 是完全自研的 Agent 框架
  • [x] 掌握迭代推理循环的实现原理
  • [x] 了解课程式训练范式
  • [x] 能够对比 DeepAnalyze 和 LangGraph 的差异
  • [x] 理解不同 Agent 实现方式的适用场景

🔗 相关资源

官方资源

资源链接
GitHubruc-datalab/DeepAnalyze
HuggingFace 模型RUC-DataLab/DeepAnalyze-8B
训练数据DataScience-Instruct-500K
论文arXiv:2510.16872

延伸阅读

相关章节

章节内容
Module 10TradingAgent - 使用 LangGraph 的多 Agent 系统
Module 12多 Agent 工作流设计模式
Module 14Deep Agent 高级模式

💭 思考题

  1. 框架选择:在什么情况下,自研 Agent 框架比使用 LangGraph 更有优势?

  2. 训练 vs 工程:DeepAnalyze 通过训练让模型学会使用标签,LangGraph 通过工程实现工具调用。这两种方法各有什么优劣?

  3. 专用 vs 通用:如果要构建一个专用领域的 Agent(如法律、医疗),应该选择哪种技术路线?

  4. 扩展性:DeepAnalyze 只支持代码执行一种"工具"。如果要添加其他工具(如网络搜索),应该如何设计?


🚀 下一步行动

如果你想深入 DeepAnalyze

  1. 克隆仓库并本地部署
  2. 尝试用自己的数据进行分析
  3. 阅读源代码理解实现细节
  4. 考虑如何扩展或改进

如果你更偏好 LangGraph

  1. 回顾 Module 10-14 的内容
  2. 思考如何用 LangGraph 实现类似的数据分析功能
  3. 对比两种实现的代码量和复杂度

📝 章节回顾

章节主要内容
19.0 本章介绍项目概述、框架对比、学习目标
19.1 Agent 架构迭代推理、标签系统、代码执行
19.2 训练与部署课程式训练、多接口支持
19.3 实战案例完整的数据分析工作流演示
19.4 本章小结核心要点回顾、深层洞察

🎉 恭喜完成 Module 19!

通过对比不同的 Agent 实现方式,我们更深刻地理解了 Agent 的本质。

无论是框架还是自研,核心都是:让 LLM 能够思考、执行、反馈、迭代。

基于 MIT 许可证发布。内容版权归作者所有。